/**
 * Description:
 * Class Name:Apple
 * Date:2022/3/22 14:55
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第9章_泛型._9_2_深入泛型._9_2_1_定义泛型接口_类;

public class Apple<T>{
    // 使用T类型定义实例变量
    private T info;
    // 一个空构造器
    public Apple(){}
    // 下面的构造器使用T类型来定义
    public Apple(T info){
        this.info = info;
    }

    // 老生常谈之setter和getter
    public void setInfo(T info){
        this.info = info;
    }
    public T getInfo() {
        return info;
    }

    public static void main(String[] args) {
        // 由于传给形参T的是String，所以构造器参数只能是String
        Apple<String> a1 = new Apple<>("An apple");
        System.out.println(a1.getInfo());
        // 由于传给形参T的是Double，所以构造器只能是Double或者double
        Apple<Double> a2 = new Apple<>(5.67);
        System.out.println(a2.getInfo());
    }
}
